package org.byqh.dqeai.entity.proxy;

import com.easy.query.core.expression.parser.core.available.TableAvailable;
import com.easy.query.core.proxy.AbstractProxyEntity;
import com.easy.query.core.proxy.SQLColumn;
import com.easy.query.core.proxy.SQLSelectAsExpression;
import com.easy.query.core.proxy.fetcher.AbstractFetcher;
import com.easy.query.core.proxy.core.EntitySQLContext;
import org.byqh.dqeai.entity.SysFile;
import com.easy.query.core.proxy.columns.types.SQLStringTypeColumn;
import com.easy.query.core.proxy.columns.types.SQLLongTypeColumn;
import com.easy.query.core.proxy.columns.types.SQLLocalDateTimeTypeColumn;

/**
 * this file automatically generated by easy-query, don't modify it
 * 当前文件是easy-query自动生成的请不要随意修改
 * 如果出现属性冲突请使用@ProxyProperty进行重命名
 *
 * @author easy-query
 */
public class SysFileProxy extends AbstractProxyEntity<SysFileProxy, SysFile> {

    private static final Class<SysFile> entityClass = SysFile.class;

    public static final SysFileProxy TABLE = createTable().createEmpty();

    public static SysFileProxy createTable() {
        return new SysFileProxy();
    }

    public SysFileProxy() {
    }

    /**
     * 文件ID
     * {@link SysFile#getFileId}
     */
    public SQLStringTypeColumn<SysFileProxy> fileId() {
        return getStringTypeColumn("fileId");
    }

    /**
     * 文件名称
     * {@link SysFile#getFileName}
     */
    public SQLStringTypeColumn<SysFileProxy> fileName() {
        return getStringTypeColumn("fileName");
    }

    /**
     * 父ID
     * {@link SysFile#getParentFileId}
     */
    public SQLStringTypeColumn<SysFileProxy> parentFileId() {
        return getStringTypeColumn("parentFileId");
    }

    /**
     * 文件分类ID
     * {@link SysFile#getCategoryId}
     */
    public SQLStringTypeColumn<SysFileProxy> categoryId() {
        return getStringTypeColumn("categoryId");
    }

    /**
     * Folder,File
     * {@link SysFile#getFileType}
     */
    public SQLStringTypeColumn<SysFileProxy> fileType() {
        return getStringTypeColumn("fileType");
    }

    /**
     * 文件大小
     * {@link SysFile#getFileSize}
     */
    public SQLLongTypeColumn<SysFileProxy> fileSize() {
        return getLongTypeColumn("fileSize");
    }

    /**
     * 文件版本号
     * {@link SysFile#getFileVer}
     */
    public SQLStringTypeColumn<SysFileProxy> fileVer() {
        return getStringTypeColumn("fileVer");
    }

    /**
     * 0为不需要注册;1需要注册，默认为0
     * {@link SysFile#getRegsvr}
     */
    public SQLStringTypeColumn<SysFileProxy> regsvr() {
        return getStringTypeColumn("regsvr");
    }

    /**
     * 0为不允许覆盖;1为允许覆盖，默认为1
     * {@link SysFile#getOverride}
     */
    public SQLStringTypeColumn<SysFileProxy> override() {
        return getStringTypeColumn("override");
    }

    /**
     * {@link SysFile#getUpdateDate}
     */
    public SQLLocalDateTimeTypeColumn<SysFileProxy> updateDate() {
        return getLocalDateTimeTypeColumn("updateDate");
    }

    /**
     * 文件校验
     * {@link SysFile#getFileHash}
     */
    public SQLStringTypeColumn<SysFileProxy> fileHash() {
        return getStringTypeColumn("fileHash");
    }

    /**
     * {@link SysFile#getAutorun}
     */
    public SQLStringTypeColumn<SysFileProxy> autorun() {
        return getStringTypeColumn("autorun");
    }

    /**
     * {@link SysFile#getRemark}
     */
    public SQLStringTypeColumn<SysFileProxy> remark() {
        return getStringTypeColumn("remark");
    }

    @Override
    public Class<SysFile> getEntityClass() {
        return entityClass;
    }

    /**
     * 数据库列的简单获取
     *
     * @return
     */
    public SysFileProxyFetcher FETCHER = new SysFileProxyFetcher(this, null, SQLSelectAsExpression.empty);

    public static class SysFileProxyFetcher extends AbstractFetcher<SysFileProxy, SysFile, SysFileProxyFetcher> {

        public SysFileProxyFetcher(SysFileProxy proxy, SysFileProxyFetcher prev, SQLSelectAsExpression sqlSelectAsExpression) {
            super(proxy, prev, sqlSelectAsExpression);
        }

        /**
         * 文件ID
         * {@link SysFile#getFileId}
         */
        public SysFileProxyFetcher fileId() {
            return add(getProxy().fileId());
        }

        /**
         * 文件名称
         * {@link SysFile#getFileName}
         */
        public SysFileProxyFetcher fileName() {
            return add(getProxy().fileName());
        }

        /**
         * 父ID
         * {@link SysFile#getParentFileId}
         */
        public SysFileProxyFetcher parentFileId() {
            return add(getProxy().parentFileId());
        }

        /**
         * 文件分类ID
         * {@link SysFile#getCategoryId}
         */
        public SysFileProxyFetcher categoryId() {
            return add(getProxy().categoryId());
        }

        /**
         * Folder,File
         * {@link SysFile#getFileType}
         */
        public SysFileProxyFetcher fileType() {
            return add(getProxy().fileType());
        }

        /**
         * 文件大小
         * {@link SysFile#getFileSize}
         */
        public SysFileProxyFetcher fileSize() {
            return add(getProxy().fileSize());
        }

        /**
         * 文件版本号
         * {@link SysFile#getFileVer}
         */
        public SysFileProxyFetcher fileVer() {
            return add(getProxy().fileVer());
        }

        /**
         * 0为不需要注册;1需要注册，默认为0
         * {@link SysFile#getRegsvr}
         */
        public SysFileProxyFetcher regsvr() {
            return add(getProxy().regsvr());
        }

        /**
         * 0为不允许覆盖;1为允许覆盖，默认为1
         * {@link SysFile#getOverride}
         */
        public SysFileProxyFetcher override() {
            return add(getProxy().override());
        }

        /**
         * {@link SysFile#getUpdateDate}
         */
        public SysFileProxyFetcher updateDate() {
            return add(getProxy().updateDate());
        }

        /**
         * 文件校验
         * {@link SysFile#getFileHash}
         */
        public SysFileProxyFetcher fileHash() {
            return add(getProxy().fileHash());
        }

        /**
         * {@link SysFile#getAutorun}
         */
        public SysFileProxyFetcher autorun() {
            return add(getProxy().autorun());
        }

        /**
         * {@link SysFile#getRemark}
         */
        public SysFileProxyFetcher remark() {
            return add(getProxy().remark());
        }

        @Override
        protected SysFileProxyFetcher createFetcher(SysFileProxy cp, AbstractFetcher<SysFileProxy, SysFile, SysFileProxyFetcher> prev, SQLSelectAsExpression sqlSelectExpression) {
            return new SysFileProxyFetcher(cp, this, sqlSelectExpression);
        }
    }
}
